package cn.shadow.beans;

/**
 * 定义注册器
 * @author 冯啸迪
 */
public interface BeanDefinitionRegister {

    /**
     * 通过beanName注册BeanDefinition
     * @param beanName bean名称
     * @param beanDefinition bean的定义
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionRegistException;

    /**
     * 通过BeanName 获取Bean的定义
     * @param beanName Bean名称
     * @return Bean的定义
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 根据Bean名称检查其是否被注册过
     * @param beanName bean名称
     * @return 返回true或者false
     */
    boolean containsBeanDefinition(String beanName);

}
